1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| import os import shutil import multiprocessing from functools import partial from tqdm import tqdm import cv2
def checkVid(curVidPath, outPath): cap = cv2.VideoCapture(curVidPath) n_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
fn, ret = 0, True while fn < n_frames and ret: ret, img = cap.read() if not ret: shutil.move(curVidPath, outPath) fn += 1 cap.release()
if __name__ == "__main__": dataPath = "" outPath = "" num_threads = 8
vidsList = [os.path.join(dataPath, item) for item in os.listdir(dataPath)] checkVid_fn = partial(checkVid, outPath=outPath) with multiprocessing.Pool(num_threads) as pool: for res in tqdm(pool.imap_unordered(checkVid, vidsList), total=len(vidsList)): pass
|